Industrial robots, particularly teaching-playback industrial robots having three or more degrees of freedom, are often instructed with a small-size user interface unit called a programming pendant or a teaching box which is connected to a robot controller. Alternatively, an application program is generated using a programming language for robot control, and a robot is operated according to the application program.
When an application program is to be generated off-line and a robot is to be operated according to the generated application program, it is difficult to accurately describe movement details based on actual workpiece configurations. Therefore, it is widely practiced to correct such an application program while actually moving the robot with a programming pendant or the like. Therefore, it is customary to describe rough movements with an application program and teach a robot with a programming pendant for detailed movements while actually moving the robot. For displaying the application program, the programming pendant is used as a program display because of the need to indicate the application program to the user in some way on correction of the application program.
A welding robot as a teaching-playback industrial robot will hereinafter be described by way of example. However, the present invention is by no means limited to a welding robot.
As shown in FIG. 1, a conventional program display apparatus for a teaching-playback industrial robot is typically constructed as a programming pendant 90. The programming pendant 90 has a display screen 91 generally referred to as a robot operation program display for displaying various information to the user, and a plurality of entry keys 94 for entering commands, numerical values, and directional information. The programming pendant 90 is connected to a robot controller by a cable 96 which includes signal lines and power lines, and also to another information entry unit 97 such as a pointing device. The programming pendant 90 is supplied with electric energy from the robot controller through the cable 96. The programming pendant 90 exchanges information with the robot controller, and is supplied with information from the entry keys 94 and the information entry unit 97. Based on the exchanged information, the programming pendant 90 displays a programming language on the display screen 91. In the illustrated example, the display screen 91 displays, on the basis of characters, four lines of the programming language ranging from "JOB-40" to "END".
Program languages for controlling industrial robots include compiler-type program languages and interpreter-type program languages. The compiler-type program languages are in the form of high-level languages, and compile a source program into an executable form which will be used to control actual robot operation. The interpreter-type robot languages are made up of a group of primitive commands. For controlling robot operation with an interpreter-type robot language, commands are entered from a programming pendant and at the same time operative positions of the robot are stored, and the commands are successively executed by an interpreter. When the user refers to and edits a robot language which is of either the compiler-type or the interpreter-type, an application program is displayed as a string of characters.
The conventional program display apparatus is problematic in that it is difficult for the user to grasp actual operation details of the robot because the operation details of the robot are displayed as a program list expressed by the robot language. Furthermore, since language expressions are made on the basis of characters, the operator for instructing the robot is required to understand commands defined by the robot language and their meanings when the teaching operator generates and edits a program using the program display apparatus or the programming pendant. However, unskilled operators find it difficult to master a group of commands of the robot language and needs a long period of time to learn those commands. In as much as operations peculiar to a robot cannot be represented by character-based expressions of the robot language, the operator cannot recognize whether motion commands for instructing the robot are correct and where specific commands are to be written in the description of control programs for peripheral devices, unless the actual robot is operated. When a generated operating program is to be confirmed, the operator cannot see what instruction is issued to a peripheral device in which position, unless the robot is actually operated.
For example, when a program for a welding robot is displayed on the basis of characters, and if the program includes an instruction indicative of an interval, in this document, "interval" is defined as an enclosed subset of instructions, e.g., start and end of a parallel shifting movement, and start and end of a welding process, then the start and the end of the interval can be understood only by looking for and recognizing start and end commands in a string of commands. When an interval is to be established, since either one of start and end commands can be entered, there is a possibility that a program with an uncompleted interval may be generated. For these reasons, for teaching the robot, the operator needs to generate a program and confirm operation of the robot by running the generated program concurrently with each other. Therefore, the process of teaching the robot has been time-consuming.
If a program is expressed on the basis of characters, then the operator cannot easily recognize movements of the robot by referring to the generated program, and often cannot see operation details defined by the program unless the program is actually executed by the robot controller.
In the present invention, apparatus having a user interface function and used for teaching an industrial robot, and apparatus for displaying and editing a program and converting taught details into an operating program will collectively be called a robot language processing apparatus. Specifically, the category of robot language processing apparatus include program display apparatus, programming pendants, teaching boxes, and teaching apparatus. However, since the teaching apparatus and the programming pendant generally have a program displaying function, and small hand-held ones of the teaching apparatus are called programming pendants, the classification of program display apparatus, programming pendants, and instructing apparatus is not of alternative nature.
A conventional teaching process using a program display apparatus or a programming pendant will be described in specific detail below.
Heretofore, the teaching process uses a programming pendant as a teaching apparatus, and a robot is operated with the programming pendant to teach the robot positions using commands and special terms according to a robot language. Thereafter, an experienced operator enters operation commands from the programming pendant as commands and special terms according to the robot language, based on the information which the operator has accumulated through experience.
This teaching process is disadvantageous in that it cannot easily be mastered by a novice because the robot language needs to be handled on the basis of characters and special terms also needs to be handled. To perform the operation process, it is necessary to teach the robot appropriate positions and orientations as a position teaching. However, if the operator is not sufficiently skilled, then the operator does not know appropriate positions and orientations, and fails to teach the robot positions. Even if appropriate positions and orientations are known for the operation process, it is difficult for the operator who is not accustomed to a robot operating process using axis operating keys on the programming pendant to manipulate the robot at will. Even if the operator has a feel about the relationship between axis key operations and robot operating directions, the operator frequently fails to know movement limits peculiar to the robot and a process of avoiding interference between the robot itself and a working tool. The operator tends to spend a lot of time to solve the above problem.
After the position teaching process is completed, a process of teaching the robot various conditions is not completed unless the operator knows what commands (e.g., welding current and voltage) should be given to peripheral devices at what times, and what operating speed of the robot is optimum. If speed settings exceed the maximum allowable speeds for the respective axes of the robot when the robot is actually operated after the position teaching process, then it is necessary to lower the speed settings. Since operating conditions that have already been established need to be adjusted when the speed settings are lowered, adjusting such operating conditions and speed settings is time-consuming. If the workpiece is of a complex and involves tilt and rotational angles, then the operator needs to be considerably skilled for teaching the robot various conditions, and it is difficult for the operator to select appropriate conditions.
As a result, it has heretofore been possible to teach a robot an operating program using a programming pendant only with the aid of an experienced operator who has both the skill of operating the robot and the skill of achieving desired operations. Lack of many such experienced operators and the difficulty in producing such experienced operators have been responsible for impeding widespread use of robots.
Several techniques for easily teaching a robot with a programming pendant have been proposed so far. For example, Japanese laid-open patent publication No. Hei 7-100645 discloses an arc welding robot apparatus which allows the operator to confirm welding conditions at the site of confirming operations which the robot has been taught, and which also allows the operator to visually read weighted means and estimate welding stability from a range of variations. The disclosed arc welding robot displays a welding current and a welding voltage in a real-time fashion on a teaching pendant. With the welding current and voltage being displayed in an analog representation, rather than a digital representation, the operator can confirm all operations with the teaching pendant, and is subject to a reduced working burden. Specifically, the disclosed arc welding robot has a robot itself, a teaching pendant for entering operation information for the robot, and an arc welding machine connected to the robot, the teaching pendant having a display unit for displaying actual welding conditions which include at least a welding current. This publication also reveals that at least one of the actual welding conditions is displayed in an analog representation on the teaching pendant. However, inasmuch as the teaching pendant only displays the welding current and voltage in an analog representation, the arc welding robot belongs to a category-which is capable of simply displaying numerical values.
Japanese laid-open patent publication No. Hei 4-322305 discloses a display apparatus for displaying operated positions of a robot without moving the robot directly to teaching positions. The display apparatus has a small-size transmitter for transmitting a radio-wave signal or a sound-wave signal, a plurality of receivers whose positions are fixed, and a processing unit. Using data indicative of time differences between received signals, the processing unit calculates the position of the transmitter, and teaches the calculated position as an operated position. The publication also discloses a display apparatus having two transmission units in a transmitter. Since the display apparatus calculates the position of the robot from the time differences between received signals with the processing unit, however, the display apparatus cannot display a welding path and its welding conditions as a graphical diagram for an easy understanding.